How Blitz scaled their game coaching app with lower latency and leaner operations এটি একটি দ্রুত বৃদ্ধি পাওয়ার স্টার্টআপ যা লিগ অফ লেগেন্ডস, ভ্যালোরান্ট এবং ফোর্টনেটের মতো গেমগুলির জন্য ব্যক্তিগত কোচিং সরবরাহ করে। আলোর যখন খেলোয়াড়রা খেলছে, অ্যাপ্লিকেশনটি বেশ কিছু কাজ করে. এটি লাইভ ম্যাচ ডেটা ক্যাপচার করে, এটি দ্রুত বিশ্লেষণ করে এবং এটি বাস্তব সময়ের গেম স্ক্রিন প্লাস এবং ব্যক্তিগত খেলা পরে কোচিংয়ের জন্য ব্যবহার করে. গাইডটি প্রতিটি খেলোয়াড়ের বর্তমান এবং ঐতিহাসিক গেম কার্যক্রমের উপর ভিত্তি করে, পাশাপাশি শত শত মিলিয়ন ব্যবহারকারীদের সাথে মিলিয়ন ম্যাচগুলির তথ্য সংগ্রহ করে। ব্লেজের জনপ্রিয় পরিসংখ্যান এবং গেম কোচিং অ্যাপ্লিকেশনের ক্রমবর্ধমান সচেতনতার কারণে, তাদের ক্রমবর্ধমান ব্যবহারকারীর ভিত্তি তাদের মূল Postgres- এবং Elixir ভিত্তিক আর্কিটেকচারকে তাদের সীমাবদ্ধতা পর্যন্ত ছাড়িয়েছে। - তাদের ক্রমবর্ধমান ব্যবহারকারীর ভিত্তিতে কম দীর্ঘস্থায়ীতা, উচ্চ উপলব্ধতা এবং হাইড্রোজেন্টাল স্ক্যালারি সরবরাহ করার জন্য, তারা অবশেষে: TL;DR এলিক্সির থেকে রাস্টে পুনর্গঠিত ব্যাকেন্ড পরিষেবা। ScyllaDB Cloud এর সাথে Postgres প্রতিস্থাপন করা হয়েছে। এর ফলে তাদের রেডিস ফাঁদ হ্রাস পায়। তারা তাদের রিয়াল ক্লাস্টার মুছে ফেলেছে। রিয়েল টাইম প্রক্রিয়াজাতকরণ দিয়ে রেকর্ড প্রক্রিয়াজাতকরণ প্রতিস্থাপন করা হয়েছে। ১০০ টিরও বেশি মাইক্রো-সার্ভিসের কোর থেকে চারটি n4-Standard-4 Google ক্লাউড নোড পর্যন্ত সংগৃহীত অবকাঠামো (একটি ছোট Redis ক্যাশিং ইন্সটিউট) একটি অতিরিক্ত বোনাস হিসাবে, এই পরিবর্তনগুলি ব্লাটিজের অবকাঠামো খরচ কমানোর এবং তাদের প্রকৌশল কর্মীদের জন্য ডাটাবেসের ওজন হ্রাস করে। বিলাসবহুল ভিত্তি Naveed Khan (Blitz এর প্রকৌশল প্রধান) ব্যাখ্যা করেছিলেন, “আমরা গেম প্রকাশকদের কাছ থেকে এবং গেমিংয়ের সময় অনেক তথ্য সংগ্রহ করি. উদাহরণস্বরূপ, যদি আপনি লিগ অফ লেগেন্ডস খেলেন তবে আমরা রিয়োটের এপিআই ব্যবহার করি ম্যাচ ডেটা তুলতে, এবং যদি আপনি আমাদের অ্যাপ্লিকেশনটি ইনস্টল করেন তবে আমরা বাস্তব সময়ে গেমিংটি পর্যবেক্ষণ করি। অতীতের পাসওয়ার্ড Blitz এর সিস্টেমের একটি গুরুত্বপূর্ণ অংশ হল Playstyles API, যা দলের সহকর্মীদের এবং প্রতিপক্ষের জন্য প্রাক খেলা ডেটা বিশ্লেষণ করে। এই ঘনত্বপূর্ণ প্রক্রিয়াটি প্রতিটি খেলোয়াড়ের জন্য 20 ম্যাচ পর্যন্ত মূল্যায়ন করে এবং প্রতিটি ম্যাচের জন্য নয়টি ভিন্ন সময়ে পরিচালিত হয় (একবার প্রতিটি খেলোয়াড়ের জন্য)। দলটি কৌশলগতভাবে অনেকগুলি মাইক্রো সেবাগুলি পুনর্গঠন করে এবং গঠন করে যাতে কর্মক্ষমতা উন্নত হয়। তারা প্রথমে Postgres ব্যবহার করেছিলেন, যা তাদেরকে খুব দ্রুত সেবা দেয়। যাইহোক, যখন তাদের লেখার ভারী কাজের লোডগুলি বাড়তে থাকে, গুগল ক্লাউডের অপারেটিং জটিলতা এবং খরচগুলি উল্লেখযোগ্যভাবে বৃদ্ধি পায়। উপরন্তু, Postgres এর স্ক্যালিং বেশ জটিল হয়ে যায়। ন্যাভেড ভাগ করেছিলেন, "আমরা সব ধরনের জিনিসগুলি স্ক্যালিং করার চেষ্টা করেছি। স্টার্টআপগুলি ক্রমবর্ধমান হওয়ার সাথে সাথে সাথে, তারা প্রায়ই "মাত্র Postgres ব্যবহার করুন" থেকে "মাত্র NoSQL ব্যবহার করুন" পরিবর্তন করে। যথাযথভাবে, Blitz টিমটি MongoDB এ স্থানান্তর করার কথা বিবেচনা করেছিল, কিন্তু অবশেষে এটি বাদ দিয়েছিল। "আমরা টিমের মধ্যে অনেক MongoDB অভিজ্ঞতা পেয়েছি এবং আমাদের মধ্যে কয়েকজন এটি খুব পছন্দ করেছিল। তাদের নির্দিষ্ট কাজের লোড এবং প্রত্যাশিত বৃদ্ধির জন্য একটি বোতলবিন্দু তৈরি করবে। MongoDB এর প্রাথমিক-দ্বিতীয় আর্কিটেকচার পরীক্ষাগুলি দেখিয়েছে যে এটি তাদের দীর্ঘস্থায়ী চাহিদাগুলি পূরণ করবে, তাই তারা প্রয়োজনীয় ডেটা (রি)মডেলিং করে এবং কয়েকটি ছোট গেমকে Postgres থেকে RocksDB-এ স্থানান্তর করে। কেন ScyllaDB তাদের একটি ব্যাকেন্ড ইঞ্জিনিয়ার ScyllaDB সুপারিশ করেছিলেন, তাই তারা আউট হয়েছিলেন এবং একটি ধারণা প্রমাণ চালিয়েছিলেন. তারা মূলত একটি সমাধান খুঁজছিলেন যা লিখা পাসপোর্ট পরিচালনা করতে পারে, হাইড্রোজেনালভাবে স্ক্যালার এবং উচ্চ উপলব্ধতা প্রদান করে। তারা প্রথমে তাদের নিজস্ব হার্ডওয়্যারে এটি পরীক্ষা করেছিলেন, তারপর ScyllaDB ক্লাউডে স্থানান্তরিত হয়েছিলেন। ন্যাভেড অনুযায়ী, "মূল্য স্ব-হোস্টিংয়ের কাছাকাছি ছিল, এবং আমরা সম্পূর্ণ প্রশাসন পেয়েছিলাম বিনামূল্যে, তাই এটি একটি নো-ব্রেনার ছিল। কর্মক্ষমতা দৃষ্টিভঙ্গিতে, লিগের পণ্যগুলি ব্যবহারকারীর অভিজ্ঞতাকে নমনীয় করার লক্ষ্য পূরণ করে ... এবং তাদের প্রকৌশল দলগুলির জন্য জীবনকে সহজ করে দিয়েছে। ব্রায়ান যোগ করেন, "স্কিলাডিবি অসাধারণ প্রমাণিত হয়েছে, অপ্টিমাইজেশনের পরে সঞ্চয় করার ক্ষমতা সহ শক্তিশালী কর্মক্ষমতা সরবরাহ করে। আমাদের লিগের পণ্যগুলি প্রায় 5k অপশন / সেকেন্ডে 5k অপশন / সেকেন্ডে পৌঁছায় এবং ক্লাস্টারটি 20% লোডের নিচে রিপোর্ট করে। আমাদের বৃহত্তম সীমাবদ্ধতা ডিস্ক ব্যবহার ছিল, যা আমরা হ্রাস করার জন্য একাধিক আপডেট চালু করেছি। নতুন সিস্টেম High-Level Architecture of Blitz Server with Rust and ScyllaDB রাস্তায় Elixir পরিষেবা পুনরাবৃত্তি একটি গুরুত্বপূর্ণ ব্যাকেন্ড সংস্কারের অংশ হিসাবে, ব্লিচ টিম তাদের সমগ্র অবকাঠামোকে পুনরায় চিন্তা করতে শুরু করে - পূর্বে বর্ণিত Postgres থেকে উচ্চ দক্ষতা এবং বিতরণ ScyllaDB এ স্থানান্তরিত করার বাইরে। এই ডাটাবেস মাইগ্রেশনের পাশাপাশি, তারা আরও আধুনিক ভাষার পক্ষে তাদের Elixir ভিত্তিক পরিষেবাগুলি সূর্যগ্রহণ করার সিদ্ধান্ত নিয়েছে। এখন যেহেতু রাস্টের প্রথম পুনরায় লেখা পরিষেবাগুলি উৎপাদন করা হচ্ছে, ন্যাভিইড এবং দল পিছনে ফিরে তাকায় না: "রাস্ট অসাধারণ। এটি দ্রুত এবং কম্পাইলার আপনাকে পরবর্তীতে বর্জ্য সংগ্রহের সমস্যাগুলি ডাবগিং করার পরিবর্তে মেমরি সুরক্ষিত কোড লিখতে বাধ্য করে।